package ar.edu.utn.frsf.tpae.a2012.g05.service;

import java.math.BigDecimal;
import java.util.List;

import ar.edu.utn.frsf.tpae.a2012.g05.entity.Cuenta;
import ar.edu.utn.frsf.tpae.a2012.g05.exception.NegocioException;

/**
 * @author Manuel
 *
 */
public interface CuentaService {

	/**
	 * Este servicio debe comunicarse con la interfaz del dao y buscar todas cuentas
	 * persistidas del cliente con el identificador que se pasa por parametro.
	 * 
	 * @param idCliente
	 * @return las cuentas del cliente
	 * @throws NegocioException 
	 */
	public List<Cuenta> findCuentasCliente(Integer idCliente) throws NegocioException;
	
	/**
	 * Este servicio tiene la responsabilidad de debitar un monto de una cuenta
	 * @param cuenta
	 * @param monto
	 * @throws NegocioException <br>
	 * 		-la cuenta no existe <br>
	 * 		-la cuenta no tiene saldo para realizar el debito <br>
	 * 		-el monto es negativo <br>
	 * 
	 */
	public void debitar(Cuenta cuenta, BigDecimal monto) throws NegocioException;
	
	/**
	 * Este servicio tiene la responsabilidad de depositar un monto de una cuenta
	 */
	public Cuenta findCuentaById(Integer idCuenta);
}
